Cyclic data buffers are widely used in modern computing. One function of cyclic buffers is to allow one entity (such as a hardware device) to pass data to another entity (such as software or firmware). The data passed via the cyclic buffer may, for example, be in the form of data packets. During conventional operation of cyclic buffers, a block of data may be passed, such as a data packet, and “wraparound” from the end of the buffer to the beginning of the buffer. That is, a data packet may be stored so that it begins near the end of the buffer, and is continued at the beginning of the buffer. When wraparound occurs, data at a later part of the packet is stored at an offset from the beginning of the buffer that is less than an offset at which an earlier part of the packet is stored.
Like reference numbers and designations in the various drawings indicate like elements.